home *** CD-ROM | disk | FTP | other *** search
- package com.extensibility.app;
-
- import com.extensibility.util.Debug;
- import java.awt.Window;
- import javax.swing.undo.UndoManager;
-
- public class WindowUndoManager extends BaseUndoManager {
- BaseDocument doc;
-
- public WindowUndoManager(BaseDocument var1) {
- this.doc = var1;
- }
-
- public boolean isUndoInProgress() {
- return false;
- }
-
- public void undo() {
- try {
- BaseUndoable var1 = (BaseUndoable)((UndoManager)this).editToBeUndone();
-
- BaseWindow var2;
- for(var2 = this.doc.getWindow(var1.getWindow().getClass()); var2 == null; var2 = this.doc.getWindow(var1.getWindow().getClass())) {
- ((UndoManager)this).trimEdits(super.edits.lastIndexOf(var1), super.edits.lastIndexOf(var1));
- var1 = (BaseUndoable)((UndoManager)this).editToBeUndone();
- }
-
- if (var2 != Desktop.getFrontDocWindow()) {
- ((Window)var2).toFront();
- }
-
- super.undo();
- } catch (ClassCastException var3) {
- super.undo();
- }
- }
-
- public void redo() {
- try {
- BaseUndoable var1 = (BaseUndoable)((UndoManager)this).editToBeRedone();
-
- BaseWindow var2;
- for(var2 = this.doc.getWindow(var1.getWindow().getClass()); var2 == null; var2 = this.doc.getWindow(var1.getWindow().getClass())) {
- ((UndoManager)this).trimEdits(super.edits.lastIndexOf(var1), super.edits.lastIndexOf(var1));
- var1 = (BaseUndoable)((UndoManager)this).editToBeRedone();
- }
-
- if (var2 != Desktop.getFrontDocWindow()) {
- ((Window)var2).toFront();
- }
-
- super.redo();
- } catch (ClassCastException var3) {
- super.redo();
- }
- }
-
- public void clearTo(BaseWindow var1) {
- boolean var2 = false;
-
- int var3;
- for(var3 = super.edits.size() - 1; var3 >= 0; --var3) {
- try {
- BaseEdit var4 = (BaseEdit)super.edits.elementAt(var3);
- if (var4 instanceof BaseUndoable && ((BaseUndoable)var4).getWindow() == var1) {
- var2 = true;
- break;
- }
-
- if (var4 instanceof BaseWindowEdit && ((BaseWindowEdit)var4).getWindow() == var1) {
- var2 = true;
- break;
- }
- } catch (ClassCastException var5) {
- }
- }
-
- if (var2) {
- ((UndoManager)this).trimEdits(0, var3);
- }
-
- if (super.edits.size() == 0) {
- super.undoAction.setEnabled(false);
- super.redoAction.setEnabled(false);
- }
-
- }
-
- public void retargetEdits(BaseWindow var1) {
- for(int var2 = 0; var2 < super.edits.size(); ++var2) {
- try {
- BaseUndoable var3 = (BaseUndoable)super.edits.elementAt(var2);
- if (var3.getWindow() == var1) {
- BaseDocument var4 = ((BaseEdit)var3).getDocument();
- BaseWindow var5 = var4.getWindow(Class.forName("com.extensibility.app.BaseWindow"));
- Debug.assert(var5 != null);
- var3.setWindow(var5);
- }
- } catch (ClassCastException var6) {
- }
- }
-
- }
- }
-